bimap :: (a -> c) -> (b -> d) -> (a, b) -> (c, d)